#ifndef __JEUDELAVIE__
#define __JEUDELAVIE__

#define WIN32 //WIN32 pour compiler sous windows, utiliser LINUX pour Linux

#ifdef WIN32
#include <conio.h>
#define CLEAR "cls"
#define GETCH _getch
#define CHANGEMODE0
#define CHANGEMODE1
#endif

#ifdef LINUX
#include "linux.h"
#define CLEAR "clear"
#define GETCH getchar
#define CHANGEMODE0 changemode(0);
#define CHANGEMODE1 changemode(1);
#endif

#endif

void purger(void); //vide le buffer clavier pour ne pas entrer dans une boucle infinie si l'utilisateur rentre une lettre lors d'une saisie scanf

void Aleatoire(int** Tab,int size); //remplie le tableau aléatoirement avec des cellules mortes ou vivantes et l'affiche

void Afficher(int** Tab, int size);  //Affiche la grille

void Interface(int** Tab,int size); //Affiche l'interface

void Options(int death[8], int birth[8], int cyclique); //affiche le menu des options

void Suivant(int** Tab, int** Tabn, int size, int birth[8], int death[8], int cyclique); //prend en entrée tableau Tab au temps T et renvoie en sortie Tabn au temps T+1

int Conditions(int sum, int tableau[8]); //vérifie si les conditions sont vérifiées selon les options spécifiées par l'utilisateur

void Step(int** Tab, int** Tabn, int size, int birth[8], int death[8], int cyclique); //Effectue un cycle d'évolution

int Exporter(int** Tab,int size); //exporte le tableau, renvoie 0 si tout s'est bien passé

int Importer(int** Tab,int size); //importe le tableau, renvoie 0 si tout s'est bien passé
